package com.controleFamiliar.action;


import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.controleFamiliar.facade.FontePagadoraFacade;
import com.controleFamiliar.form.FontePagadoraForm;
import com.controleFamiliar.pojo.FontePagadora;

public class FontePagadoraAction extends DispatchAction{
	
	public static final String FORWARD = "editarFontePagadora";
		
	public ActionForward iniciarCadastroFontePagadora(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		FontePagadoraForm formulario = (FontePagadoraForm) form;
		//Caso haja algum erro retorna para a tela de cadastro
		String forward = FORWARD;
		formulario.limpar();
		try{
		FontePagadoraFacade facade = new FontePagadoraFacade();
		List<FontePagadora> listaFontePagadoras = facade.listarTodasFontePagadoras();
		request.setAttribute("listaFontePagadoras", listaFontePagadoras);
		
		}catch(Exception e){
			throw e;
		}	
		return mapping.findForward(forward);
	}
	
	public ActionForward salvarFontePagadora(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		FontePagadoraForm formulario = (FontePagadoraForm) form;
		try{
		FontePagadoraFacade facade = new FontePagadoraFacade();
		
		FontePagadora fontePagadora = this.preencherPOJO(formulario); 
		
		facade.salvarFontePagadora(fontePagadora);
		
		request.setAttribute("message", "Fonte Pagadora salva com sucesso");
		}catch(Exception e){
			throw e;
		}	
		return this.iniciarCadastroFontePagadora(mapping, formulario, request, response);
	}
	
	/**
	 * Remove uma categoria previamente cadastrada.
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward removerFontePagadora(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		FontePagadoraForm formulario = (FontePagadoraForm) form;		
//		try{
//		FontePagadoraFacade facade = new FontePagadoraFacade();
//		facade.removerFontePagadora(Integer.parseInt(formulario.getCodFontePagadora()));
//		request.setAttribute("message", "FontePagadora removida com sucesso");
//		}catch(Exception e){
//			throw e;
//		}	
		return this.iniciarCadastroFontePagadora(mapping, formulario, request, response);
	}
	
	private FontePagadora preencherPOJO(FontePagadoraForm formulario) throws Exception{
		FontePagadora fontePagadora = new FontePagadora();
		
		//Copiando as propriedades semelhantes em nome e tipo
		BeanUtils.copyProperties(fontePagadora, formulario);
		
		return fontePagadora;		
	}
	

}
